package com.itheima.d5_tcp2;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/*
   目标：完成TCP通信快速入门-服务端开发：实现1发1收。
 */
public class Server {
    public static void main(String[] args) throws Exception {
        // 1、创建ServerSocket的对象，同时为服务端注册端口。
        ServerSocket serverSocket = new ServerSocket(10086);

        // System.out.println("accept方法执行前");
        // 2 监听客户端的连接 ,  阻塞
        Socket socket = serverSocket.accept();
        // System.out.println("accept方法执行后");

        // 3 获取网络中的字节输入流(接受数据),封装成高效的字符输入流
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        // 4 读数据, 读一行数据,读到换行符任务读到一行数据
        // 具备阻塞作用
        while (true) {
            String s = br.readLine();
            // 如果读到了null数据, 说明客户端关闭了
            if (s == null) {
                // 5 释放资源
                br.close();
                socket.close();
                serverSocket.close();
                break;
            }
            System.out.println(s);
        }
    }
}













